package com.hhs.FileUpload.entity;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.web.multipart.MultipartFile;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

@Getter
@Setter
@ToString
@JsonInclude(JsonInclude.Include.NON_NULL)
public class FileVerify implements Serializable {
    // -- -- -------------------------------- 校验接口入参
    /**
     * 业务主键ID
     */
    private String businessId;
    /**
     * 业务模块类型
     */
    private String busMode;
    /**
     * 文件
     */
    private MultipartFile file;
    /**
     * 文件名称
     */
    private String fileName;
    /**
     * 文件大小
     */
    private Long fileSize;
    /**
     * 文件最后更新时间
     */
    private Long lastModified;
    /**
     * 前端使用MD5 对 文件名+文件大小+文件类型+文件最后更新时间 拼接后字符串 的MD5加密
     */
    private String chunkMd5;
    // -- -- -------------------------------- 校验和断点续传接口出参
    private String fileId;
    /**
     * 分片标记: 分片-1;不分片-0;
     */
    private Boolean chunkFlag;
    /**
     * 分片总数量
     */
    private BigDecimal shardTotal;
    /**
     * 当前分片编号
     */
    private BigDecimal shardIndex;
    /**
     * 每个分片大小
     */
    private BigDecimal shardSize;
    /**
     * 分片数据信息集合
     */
    private List<ChunkShard> shardList;

    /**
     * 是否是最后一个分片
     */
    private Boolean endFlag;

    @Setter
    @Getter
    public static class ChunkShard implements Serializable {
        private BigDecimal shardTotal;
        private BigDecimal shardIndex;
        private BigDecimal shardStart;
        private BigDecimal shardEnd;
    }

}
